SUPPORT / SAMPLES & SAS NOTES
 

Support

Problem Note 64616: A DataDirect driver causes a data integrity issue after you update a DATETIME column in an SQL Server table while using the SQLSRV LIBNAME engine

DetailsHotfixAboutRate It

You update a Microsoft SQL Server table by using SAS/ACCESS® Interface to Microsoft SQL Server and the SQL procedure. You then see a note in the log that confirms that the row was updated. However, the data in the row is not updated. There is no indication that the update did not work as expected. In some cases, the update does complete successfully.

This issue is caused by the underlying DataDirect driver. SAS is working with Progress to resolve the issue.

The issue occurs when all of the following are true:

  • The Microsoft SQL Server version is 2016 or later.
  • The column in the database has a DATETIME definition.
  • The SQLSVR LIBNAME engine is used.
  • The CURSOR_TYPE=DYNAMIC option is not in the LIBNAME statement.

In the meantime, you can use one of the following workarounds:

  • Set EnableScrollableCursors=4 in the obdc.ini file. Then add the CURSOR_TYPE=DYNAMIC option to the LIBNAME statement.
  • Use the SQL pass-through facility.
  • Change the data type in the SQL Server table from DATETIME to DATETIME2.
  • Change the Compatibility Level setting of the SQL Server database to SQL Server 2014 (120). This setting is database-specific, so it would need to be done only for the database that the data server is accessing.
  • Migrate the database by using the SQL Server Native Client driver. Deselect the advanced option Map MSS Datetime Type in the OpenEdge DB to SQL Server Utility in order to migrate OpenEdge DATETIME types to Microsoft SQL Server DATETIME2 types.


Operating System and Release Information

Product FamilyProductSystemProduct ReleaseSAS Release
ReportedFixed*ReportedFixed*
SAS SystemSAS/ACCESS Interface to Microsoft SQL ServerMicrosoft Windows 8.1 Enterprise 32-bit9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8.1 Pro 32-bit9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8.1 Pro x649.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 109.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 20089.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 2008 R29.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 2008 for x649.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 2012 Datacenter9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 2012 R2 Datacenter9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 2012 R2 Std9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 2012 Std9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows Server 20169.439.459.4 TS1M59.4 TS1M7
Windows 7 Enterprise 32 bit9.439.459.4 TS1M59.4 TS1M7
Windows 7 Enterprise x649.439.459.4 TS1M59.4 TS1M7
Windows 7 Home Premium 32 bit9.439.459.4 TS1M59.4 TS1M7
Windows 7 Home Premium x649.439.459.4 TS1M59.4 TS1M7
Windows 7 Professional 32 bit9.439.459.4 TS1M59.4 TS1M7
Windows 7 Professional x649.439.459.4 TS1M59.4 TS1M7
Windows 7 Ultimate 32 bit9.439.459.4 TS1M59.4 TS1M7
Windows 7 Ultimate x649.439.459.4 TS1M59.4 TS1M7
64-bit Enabled AIX9.439.459.4 TS1M59.4 TS1M7
64-bit Enabled Solaris9.439.459.4 TS1M59.4 TS1M7
HP-UX IPF9.439.459.4 TS1M59.4 TS1M7
Linux for x649.439.459.4 TS1M59.4 TS1M7
Solaris for x649.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8 Enterprise 32-bit9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8 Enterprise x649.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8 Pro 32-bit9.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8 Pro x649.439.459.4 TS1M59.4 TS1M7
Microsoft Windows 8.1 Enterprise x649.439.459.4 TS1M59.4 TS1M7
Microsoft® Windows® for x649.439.459.4 TS1M59.4 TS1M7
* For software releases that are not yet generally available, the Fixed Release is the software release in which the problem is planned to be fixed.